Component-Based APIs for Versioning and Distributed Applications

نویسندگان

  • Robert Stets
  • Galen C. Hunt
  • Michael L. Scott
چکیده

54 Computer O perating system application programming interfaces (APIs) are typically monolithic procedural interfaces that address a single machine's requirements. This design limits evolutionary development and complicates application development for distributed systems. An OS's functionality will change over its lifetime, and these changes must be reflected in the API. In an ideal world, obsolete API calls would be deleted, and calls with modified semantics (but unmodified parameters and return values) would remain the same. Unfortunately, since the OS must continue to support legacy applications, obsolete calls can never be deleted, and new call semantics are best introduced through new calls. The need for backward compatibility leads to bloat in the API and the supporting code. In addition, typical OS APIs do not adequately address the needs of distributed applications: They have support for intermachine communication but lack high-level support for accessing remote OS resources. The primary omission is a uniform method for naming remote resources, such as windows, files, and synchronization objects. Component software methods, which have been primarily motivated by the desire for reuse, can eliminate these weaknesses. Software components are " binary units of independent production, acquisition, and deployment that interact to form a functioning system. " 1 Component software environments are largely based on distributed platforms and, due to natural software evolution typically contain multiple active versions of components. Component infra-structures therefore have good distributed computing support and also have versioning support for managing multiple versions of code. A component-based OS API is constructed entirely of software components, each modeling an OS resource. To facilitate independence, components necessarily encapsulate state and functionality. The component modeling an OS resource will therefore contain all necessary access and manipulation functions. This encapsulation allows the OS resource to be instantiated on a remote machine and also provides a natural unit for API versioning. Only the API must be component-based. The underlying OS can be monolithic, a microkernel, or component based. A component-based API controls access to the OS, which is sufficient to provide API version-ing and to expose OS resources outside the host machine (remoting). Our component-based OS proxy (COP), a prototype component-based API, acts like a traffic cop, directing OS requests to the appropriate version or resource location. COP currently targets the Win32 API and is implemented on top of Windows NT 4.0, covering approximately 350 Win32 calls. COP introduces a minimum of overhead in the local case while providing …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Component-based Operating System APIs: A Versioning and Distributed Resource Solution

Component software techniques have been developed to facilitate software reuse. State and functionality are encapsulated inside components with the goal of limiting program errors due to implicit interactions between components. Late binding of components allows implementations to be chosen at run-time, thereby increasing opportunities for reuse. Current component infrastructures also provide v...

متن کامل

Towards a Versioning Model for Component-based Software Assembly

The world of software development has rapidly changed in the last few years due to the adoption of component−based technologies. The classical software configuration management, which deals with source code versioning, becomes insufficient in the world where most components are distributed in a binary form. This paper focuses on solving versioning issues in the SOFA/DCUP component environment, ...

متن کامل

Distributed Versioning Model for MOF

This paper describes a distributed versioning model, DVM, suitable for the OMG Meta Object Facilities (MOF). We show that the commonly used versioning model, such as CVS, is not sufficient for MOF (and nor is the one proposed in the response [14] to OMG RFP for MOF 2.0 versioning) and propose a solution based on location identifications and sequence numbers together with the rules for creating ...

متن کامل

Component versioning for protocol configuration management

Classical software configuration management which deals with source code versioning becomes insufficient when most components are distributed in binary form. As an important aspect of software configuration, protocol configuration also encounters those problems. This paper focuses on solving protocol component versioning issues for protocol configuration management on embedded system, incorpora...

متن کامل

Distributed Versioning: Consistent Replication for Scaling Back-End Databases of Dynamic Content Web Sites

Dynamic content Web sites consist of a front-end Web server, an application server and a back-end database. In this paper we introduce distributed versioning, a new method for scaling the back-end database through replication. Distributed versioning provides both the consistency guarantees of eager replication and the scaling properties of lazy replication. It does so by combining a novel concu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • IEEE Computer

دوره 32  شماره 

صفحات  -

تاریخ انتشار 1999